The present invention relates generally to evaluating quality of service provided over a network, and more particularly, to systems and methods for determining the amount of time it takes to perform a sequence of operations over a network such as the Internet.
With the explosive growth of the Internet, increased traffic has caused the performance experienced by users making connections over the Internet to vary widely. The longer it takes a user to download information from a web site, the more likely the user is to go to a competitor's web site. Thus, it is important for companies to be aware of the amount of time it takes users to download information from their Internet sites so that they can quickly identify problems, upgrade their equipment, modify the content of their web site, or otherwise increase the speed of delivery of information at their web site.
Many factors influence the performance of a connection including the user's modem and other equipment, the type of server, the load on the server, and the Internet service provider used. The first step in evaluating connection performance is to obtain reliable information regarding performance characteristics such as the time required to download web pages or other information across a connection.
One approach to measuring web site performance is to connect measurement agents to the Internet at various geographic locations. This approach is described in U.S. Pat. No. 6,006,260 which is incorporated herein by reference in its entirety. The system disclosed therein uses a browser agent to send an HTTP GET command to a server and then record the amount of time it takes to complete transmission of the data. The agents evaluate the performance of a web site by measuring the amount of time it takes to download a web page. Due to their remote location, the agents are able to evaluate the performance of a web site from the end user's perspective, and are able to measure the effects of the intervening network itself in addition to the performance of the web server. As a result, the performance seen by an agent can provide a reasonable approximation for the service experienced by customers connecting to the Internet at approximately the same location, and at approximately the same time as the agent.
While this is a useful indicator of server performance, it would further be useful if a process could be developed that could measure web server performance during a typical session where the web server is accessed by a user to do multiple tasks in a sequential order. In addition to measuring page download, many web sites, such as e-commerce web sites, are interested in measuring multi-step transactions. For example, systems that simply measure page downloads are not able to measure the time it takes for a user to perform a series of transactions which require the agent to send information back to the web server to complete the transaction. Common on-line transactions include booking an airline reservation, executing a stock transaction, checking the balance in a bank account, and purchasing a book or CD. In order to evaluate the performance of these sites, measurements are required for the entire transaction, not just the download time for a single page. For example, a user may want to access a web site having financial information. The user may login to the web site and then type in a stock symbol and retrieve a graph of the stock corresponding to the stock symbol. Next, the user may look up one or more other stock symbols and add those to the chart for the purpose of comparing the stocks. Finally, the user exits the web site, thus ending the session. Complex transactions such as making a stock trade or searching for information involves a series of web pages and exercises multiple back end systems. Problems with any of these systems may cause the transaction to fail or slow down.
One method for recording and analyzing transactions over a network such as the Internet is disclosed in U.S. patent application Ser. No. 09/475,765, filed Dec. 30, 1999, which is incorporated herein by reference in its entirety.
One important feature in recording transactions is providing feedback during the recording so that the user knows that they have successfully created a recording of a transaction. It would also be helpful if the user could provide annotations within the recording to aid in creating a script from the recording.